Android Service
when: ユーザーのアプリ操作を伴わずにバックグラウンドで処理を行いたい時に。
what:
Activityなどと同じようにコンポーネントの1つ
Activityのライフサイクルcallbacks(onCreate...)と Serviceの callbacks(onCreate, onBind,,,)を比較してイメージする
ただ、UIを伴わない
メインスレッドで動作する。
なので、別スレッドで何かやりたいときは別の仕組みを使う。(さらにthreadを呼ぶ)
ライフサイクル
以下の2つのどちらかで起動, 起動後にonCreate()が呼ばれ、最後はonDestroy()
startService()
launchされて、プログラムから参照できない。stopコマンド(関数) はある。
bindService()
開始したactivity上でinstance(binderインスタンス)を参照できる。
activityのライフサイクルに準拠する。自動的にdisposeされる
細かい制御が可能。
binderクラスを拡張して使用する
このserviceインスタンスを作るまでが面倒だが、これが(Javaの)オブジェクト指向